Skip to content
This repository has been archived by the owner on Jul 14, 2023. It is now read-only.

Member Request #45

Merged
merged 3 commits into from
Oct 24, 2022
Merged

Member Request #45

merged 3 commits into from
Oct 24, 2022

Conversation

timwu20
Copy link
Contributor

@timwu20 timwu20 commented Oct 20, 2022

My name is Timothy Wu and I'm the current team lead for the Gossamer project, a Go implementation of the Polkadot host. I have been contributing to Gossamer since May of 2021. I started out as an individual contributor on the team as I ramped up my knowledge of the Polkadot protocol, Substrate, and the tooling provided by the ecosystem. I've since been promoted to the team lead position, which is both a management/career development role and technical lead role.

During my time working on Gossamer I've contributed to different parts of the codebase. I accepted the challenge to overhaul our existing SCALE implementation. A lot of the existing encoding and decoding code in Gossamer was quite custom and repetitive. The approach I took was more along the lines of building a generic serde using reflection, which would support primitive and complex types, as well as custom types. The translation between the primitive and complex types in Go align quite well with type system of Rust, but Go does not directly support enums, results, and options. With the overhauled scale package, we introduced scale.VaryingDataType and scale.Result types which map to a Rust enum and result.

I also was focused on setting up our CI infrastructure to allow us to continuously update our staging setup, which are non-authority syncing nodes with the latest development build. Metric collection, alarms and visualisation is also setup so we can continually monitor these nodes. I was also focused on setting up a local development environment using docker and docker-compose to test the Gossamer node in ephemeral devnets usually in a 3 node environments, both in a Gossamer only configuration as well as an interoperable configuration with Substrate nodes. I was responsible for the devops work to run long running devnets in the cloud for both Gossamer only and interoperable configurations.

Most of my time these days is spent providing technical leadership by reviewing the majority of the contributions from the engineers on the team. I'm reviewing the spec and substrate codebase which allows me to be a technical resource when it comes to BABE, GRANDPA, the trie, and the networking stack. I continue to focus on fostering a collaborative work environment here on the Gossamer team, as well as teaching and implementing Go best practices.

I've really enjoyed my time working in the Polkadot ecosystem. As the team lead of Gossamer I have to provide technical updates on the project during our calls with W3F and it's been a great working relationship. I hope to continue learning and growing in this ecosystem and to help improve client diversity. Given my experience, I am requesting to join the Fellowship at rank 1.

Notable contributions:

SCALE

Devnet

State

Network

Metrics

W3F Spec

@rrtti rrtti self-requested a review October 24, 2022 06:55
@rrtti rrtti enabled auto-merge (squash) October 24, 2022 06:55
@rrtti rrtti merged commit 3fe00bc into polkadot-fellows:main Oct 24, 2022
rrtti added a commit that referenced this pull request Oct 24, 2022
@rrtti
Copy link
Contributor

rrtti commented Nov 24, 2022

Hello @timwu20! Please let us know your Element handle to add you to the Fellowship channel. Thank you!

@timwu20
Copy link
Contributor Author

timwu20 commented Nov 24, 2022

Hello @timwu20! Please let us know your Element handle to add you to the Fellowship channel. Thank you!

Yes will do. I'll reach out to you on Element.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants